#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
片段列表处理器模块

该模块包含处理片段列表显示相关功能的类和方法，主要负责：
1. 更新片段列表显示
"""


from PySide6.QtWidgets import QListWidgetItem
from PySide6.QtGui import QColor

from src.video.segment_manager import SegmentType


class SegmentListHandler:
    """片段列表处理器类"""

    def __init__(self):
        """初始化片段列表处理器"""
        pass

    def update_segment_list(self, main_window):
        """
        更新片段列表显示
        
        Args:
            main_window: 主窗口实例
        """
        main_window.segment_list_widget.clear()
        segments = main_window.segment_manager.get_segments()
        
        if not segments:
            main_window.segment_list_label.setText("暂无标记片段")
            return
            
        main_window.segment_list_label.setText(f"已标记片段 ({len(segments)}个):")
        
        for i, segment in enumerate(segments):
            item_text = f"[{'保留' if segment.segment_type == SegmentType.KEEP else '删除'}] "
            item_text += f"{main_window.format_time(segment.start_time)} - {main_window.format_time(segment.end_time)} "
            item_text += f"({segment.duration():.2f}秒)"
            
            item = QListWidgetItem(item_text)
            # 设置颜色：绿色表示保留片段，红色表示删除片段
            if segment.segment_type == SegmentType.KEEP:
                item.setBackground(QColor(144, 238, 144, 128))  # 浅绿色
            else:
                item.setBackground(QColor(255, 99, 71, 128))    # 浅红色
                
            main_window.segment_list_widget.addItem(item)